#ifndef MINI_ENGINE_SYNCOBJECTS
#define MINI_ENGINE_SYNCOBJECTS
#include <vulkan/vulkan.h>
#include "LogicalDevice.h"

namespace mini_engine
{
    class SyncObjects
    {
    private:
        SyncObjects();
        static SyncObjects *m_syncObjects;
        class SyncObjectsDestruction
        {
        public:
            ~SyncObjectsDestruction();
        };

    public:
        static VkSemaphore imageAvailableSemaphore;
        static VkSemaphore renderFinishedSemaphore;
        static VkFence inFlightFence;
        static SyncObjects *getSyncObjects();
        void createSyncObjects();
        ~SyncObjects();
    };
}

#endif